home *** CD-ROM | disk | FTP | other *** search
/ Nikkei Mac 20 / NIKKEI-MAC-CD-VOL-20-1998-12.ISO.7z / NIKKEI-MAC-CD-VOL-20-1998-12.ISO / デモソフトライブラリー / 日本テレコムODNスターターキット / Internet Setup / Modem Scripts / Motorola Power⁄Lifestyle 28.8 / Motorola Power_Lifestyle 28.8 next >
Text File  |  1996-11-01  |  9KB  |  510 lines

  1. !  Motorola Power/Lifestyle 28.8
  2. !    Author:    Kris Kreutzman
  3. !
  4. !    Copyright:    ゥ 1991-1996 Apple Computer, Inc.    All Rights Reserved.
  5. !
  6. !    revision history:
  7. !        v2.1    as shipped with the ARA 2.1
  8. !
  9. !  'mlts' resource info for this modem:
  10. !    byte 1 == 01 -> modem HAS built-in error correction protocols
  11. !    byte 2 == 01 -> modem HAS built-in data compression protocols
  12. !    byte 3 == 81 -> max number of chars in varstr 7
  13. !    byte 4 == 81 -> max number of chars in varstr 8
  14. !    byte 5 == 81 -> max number of chars in varstr 9
  15. !    
  16. @ORIGINATE
  17. @ANSWER
  18. !
  19. ! ---- Initial modem setup ----
  20. !
  21. ! Set serial port speed depending upon the compression flag
  22. !    A higher rate with compression on to handle expanded data from the modem
  23. !    A lower rate closer to the DCE when compression is off
  24. ifstr 5 1 "0"
  25. serreset 57600, 0, 8, 1
  26. jump 2
  27. !
  28. @LABEL 1
  29. serreset 38400, 0, 8, 1
  30. !
  31. @LABEL 2
  32. hsreset 0 0 0 0 0 0
  33. settries 0
  34. !
  35. ! Get the modem's attention
  36. !
  37. matchclr
  38. matchstr 1 3 "OK¥13¥10"
  39. write "AT¥13"
  40. matchread 30
  41. !
  42. @LABEL 3
  43. !
  44. ! Setup the modem for the following:
  45. !   Reset to factory settings
  46. !   Standard compression/reliablity
  47. !   Lock serial port speed
  48. !   Serial port hardware handshaking, turn off software handshaking
  49. !   Verbose responces and compression/protocol results
  50. !   CONNECT returns DCE speed
  51. !   Turn off answering
  52. !   Reset or return to command mode on DTR toggle (optional)
  53. !
  54. matchclr
  55. matchstr 1 4   "OK¥13¥10"
  56. matchstr 2 101 "ERROR¥13¥10"
  57. write "AT&FE0&D2¥¥V3¥¥Q2¥¥K0S7=120S0=0¥13"
  58. matchread 30
  59. inctries
  60. iftries 3 101
  61. !
  62. ! Reset the Modem on setup failure
  63. !
  64. DTRClear
  65. pause 5
  66. DTRSet
  67. flush
  68. jump 3
  69. !
  70. !
  71. @LABEL 4
  72. ! Varstring 4 , reliable link protocol:
  73. !    = 0, handled by computer (ARAP)
  74. !    = 1, handled by modem (PPP)
  75. !    = 2, MNP10 protocol (Cellular protocol, no longer supported)
  76. ifstr 4 5 "1"
  77. ifstr 4 5 "2"
  78. !
  79. ! Varstring 4 == 0, turn off reliable link protocol in modem (ARAP)
  80. matchclr
  81. matchstr 1 9 "OK¥13¥10"
  82. write "AT¥¥N¥13"
  83. matchread 30
  84. jump 101
  85. !
  86. !
  87. @LABEL 5
  88. ! Varstring 5, compression protocol:
  89. !    = 0, handled by computer 
  90. !    = 1, handled by modem
  91. ifstr 5 9 "1"
  92. !
  93. ! Varstring 5 == 0, turn off compression protocol in modem.
  94. matchclr
  95. matchstr 1 9 "OK¥13¥10"
  96. write "AT%C¥13"
  97. matchread 30
  98. jump 101
  99. !
  100. !
  101. @LABEL 9
  102. ! Varstring 2, modem speaker:
  103. !    = 0, speaker off
  104. !    = 1, speaker on
  105. ifstr 2 13 "1"
  106. pause 5
  107. matchclr
  108. matchstr 1 13 "OK¥13¥10"
  109. write "ATM0¥13"
  110. matchread 30
  111. jump 101
  112. !
  113. ! Modem ready, wait for a call or originate a call
  114. !
  115. @LABEL 13
  116. ifANSWER 32
  117. !
  118. !
  119. ! ---- Originating a call ----
  120. !
  121. ! Varstring 6, dialing mode:
  122. !    = 0, normal dialing
  123. !    = 1, blind dialing
  124. !    = 2, manual dialing
  125. !    otherwise dial as ARA version 1.0
  126. ifstr 6 19 "0"
  127. ifstr 6 17 "1"
  128. ifstr 6 15 "2"
  129. !
  130. ! Dialing for ARA version 1.0
  131. note "Dialing ^1" 3
  132. write "ATD^3^1¥13
  133. jump 32
  134. !
  135. @LABEL 15
  136. ! Display ASK dialog with message.  Goto label 107 if dialog canceled.
  137. ASK 2 "Pick up the phone & dial ^1.  When the phone rings, click OK then hang up." 107
  138. note "Manual dialing initiated" 3
  139. ! X1 to ignore dialtone & busy, D to dial, ¥^ generates data tone
  140. write "ATX1D¥13"
  141. jump 32
  142. !
  143. @LABEL 17
  144. note "Dialing without tone" 3
  145. matchclr
  146. matchstr 1 19 "OK¥13¥10"
  147. ! X1 to ignore dialtone & busy
  148. write "ATX1¥13"
  149. matchread 30
  150. jump 101
  151. !
  152. !
  153. !
  154. @LABEL 19
  155. ! Display the full dialstring contained in Varstring 1
  156. note "Dialing ^1" 3
  157. !
  158. ! Varstrings 7, 8 and 9, contain dialstring fragments
  159. !    Long phone numbers may need to be split into smaller groups
  160. !    for the modem to use
  161. !
  162. ! Varstring 3:  "p" for pulse & "t" for tone dialing
  163. ! Varstring 8 == blank (dialstring in varstring 7)
  164. ! Varstring 9 == blank (dialstring in varstrings 7 & 8)
  165. ! Otherwise (dialstring in varstrings 7, 8 & 9)
  166. ! ¥^ is added to the dialstring to force the modem to generate a data tone
  167. ifstr 8 27 " "
  168. ifstr 9 24 " "
  169. !
  170. !  Write dialstring in varstrings 7, 8 & 9
  171. matchclr
  172. matchstr 1 21 "OK¥13¥10"
  173. write "ATD^3^7;¥13"
  174. matchread 400
  175. jump 101
  176.  
  177. @LABEL 21
  178. matchclr
  179. matchstr 1 22 "OK¥13¥10"
  180. write "ATD^3^8;¥13"
  181. matchread 400
  182. jump 101
  183.  
  184. @LABEL 22
  185. write "ATD^3^9¥13"
  186. jump 32
  187. !
  188. !
  189. @LABEL 24
  190. !  Write dialstring in varstrings 7 & 8
  191. matchclr
  192. matchstr 1 25 "OK¥13¥10"
  193. write "ATD^3^7;¥13"
  194. matchread 400
  195. jump 101
  196.  
  197. @LABEL 25
  198. write "ATD^3^8¥13"
  199. jump 32
  200. !
  201. @LABEL 27
  202. !  Write dialstring in varstring 7
  203. write "ATD^3^7¥13"
  204. !
  205. !
  206. !    ---- Connection responce ----
  207. !
  208. ! The following section will parse modem responces of two types:
  209. !   1) CARRIER xxx, PROTOCOL: yyy, COMPRESSION: yyy, CONNECT xxx
  210. !   2) CONNECT xxx/yyy
  211. !
  212. @LABEL 32
  213. settries 0
  214. @LABEL 33
  215. matchclr
  216. matchstr  1 81  "RING¥13¥10"
  217. matchstr  2 102 "NO DIALTONE¥13¥10"
  218. matchstr  3 103 "NO CARRIER"
  219. matchstr  4 103 "ERROR¥13¥10"
  220. matchstr  5 104 "BUSY¥13¥10"
  221. matchstr  6 105 "NO ANSWER¥13¥10"
  222. matchstr  7 35  "CONNECT"
  223. matchstr  8 34  "CARRIER"
  224. matchstr  9 62  "PROTOCOL: LAP"
  225. matchstr 10 62  "PROTOCOL: MNP"
  226. matchstr 11 62  "PROTOCOL: ALT"
  227. matchstr 12 67  "COMPRESSION: V"
  228. matchstr 13 67  "COMPRESSION: MNP5"
  229. matchstr 14 67  "COMPRESSION: CLASS"
  230. matchread 700
  231. ifANSWER 32
  232. jump 105
  233. !
  234. !  CARRIER parsing
  235. !
  236. @LABEL 34
  237. jsr 38
  238. inctries
  239. jump 33
  240. !
  241. !  CONNECT parsing - do not parse rate if CARRIER seen
  242. !
  243. @LABEL 35
  244. iftries 1 61
  245. jsr 38
  246. jump 61
  247. !
  248. !  Parse CONNECT/CARRIER rate subroutine
  249. !    2400 and 4800 have two entries each
  250. !    to distinguish them from 24000 and 48000
  251. !
  252. @LABEL 38
  253. matchclr
  254. matchstr  1 40 "2400¥13"
  255. matchstr  2 40 "2400/"
  256. matchstr  3 41 "4800¥13"
  257. matchstr  4 41 "4800/"
  258. matchstr  5 42 "7200"
  259. matchstr  6 43 "9600"
  260. matchstr  7 44 "12000"
  261. matchstr  8 45 "14400"
  262. matchstr  9 46 "16800"
  263. matchstr 10 47 "19200"
  264. matchstr 11 48 "21600"
  265. matchstr 12 49 "24000"
  266. matchstr 13 50 "26400"
  267. matchstr 14 51 "28800"
  268. matchstr 15 52 "31200"
  269. matchstr 16 53 "33600"
  270. matchread 10
  271. jump 59
  272. !
  273. ! -- Connection rates --
  274. ! CommunicatingAt informs ARA of the raw modem to modem
  275. ! connection speed.
  276. !
  277. @LABEL 40
  278. note "Communicating at 2400 bps." 2
  279. CommunicatingAt 2400
  280. jump 60
  281. !
  282. @LABEL 41
  283. note "Communicating at 4800 bps." 2
  284. CommunicatingAt 4800
  285. jump 60
  286. !
  287. @LABEL 42
  288. note "Communicating at 7200 bps." 2
  289. CommunicatingAt 7200
  290. jump 60
  291. !
  292. @LABEL 43
  293. note "Communicating at 9600 bps." 2
  294. CommunicatingAt 9600
  295. jump 60
  296. !
  297. @LABEL 44
  298. note "Communicating at 12400 bps." 2
  299. CommunicatingAt 12400
  300. jump 60
  301. !
  302. @LABEL 45
  303. note "Communicating at 14400 bps." 2
  304. CommunicatingAt 14400
  305. jump 60
  306. !
  307. @LABEL 46
  308. note "Communicating at 16800 bps." 2
  309. CommunicatingAt 16800
  310. jump 60
  311. !
  312. @LABEL 47
  313. note "Communicating at 19200 bps." 2
  314. CommunicatingAt 19200
  315. jump 60
  316. !
  317. @LABEL 48
  318. note "Communicating at 21600 bps." 2
  319. CommunicatingAt 21600
  320. jump 60
  321. !
  322. @LABEL 49
  323. note "Communicating at 24000 bps." 2
  324. CommunicatingAt 24000
  325. jump 60
  326. !
  327. @LABEL 50
  328. note "Communicating at 26400 bps." 2
  329. CommunicatingAt 26400
  330. jump 60
  331. !
  332. @LABEL 51
  333. note "Communicating at 28800 bps." 2
  334. CommunicatingAt 28800
  335. jump 60
  336. !
  337. @LABEL 52
  338. note "Communicating at 31200 bps." 2
  339. CommunicatingAt 31200
  340. jump 60
  341. !
  342. @LABEL 53
  343. note "Communicating at 33600 bps." 2
  344. CommunicatingAt 33600
  345. jump 60
  346. !
  347. @LABEL 59
  348. note "Communicating at an unknown rate." 2
  349. !
  350. @LABEL 60
  351. return
  352. !
  353. ! Look for reliablilty and compression results 
  354. ! after the CONNECT rate.
  355. !
  356. @LABEL 61
  357. matchclr
  358. matchstr  1 63 "LAPM"
  359. matchstr  2 63 "REL"
  360. matchstr  3 63 "ARQ"
  361. matchstr  4 68 "COMP/"
  362. matchstr  5 68 "COMP¥13"
  363. matchstr  6 63 "V42/"
  364. matchstr  7 63 "V42¥13"
  365. matchstr  8 68 "V42BIS"
  366. matchstr  9 68 "V42bis"
  367. matchstr 10 63 "MNP¥13"
  368. matchstr 11 68 "MNP5"
  369. matchstr 12 70 "¥10"
  370. matchread 10
  371. jump 70
  372.  
  373. ! -- Modem error correction link negotiation --
  374. ! Userhook 2 informs ARA that a modem-to-modem error
  375. ! correcting protocol has been negotiated
  376. !
  377. !
  378. @LABEL 62
  379. note "Modem Reliable Link Established." 2
  380. userhook 2
  381. jump 33
  382. !
  383. @LABEL 63
  384. note "Modem Reliable Link Established." 2
  385. userhook 2
  386. jump 61
  387. !
  388. ! -- Compression negotiation --
  389. ! Userhook 3 informs ARA that a modem-to-modem compression
  390. ! protocol has been negotiated
  391. !
  392. @LABEL 67
  393. note "Modem Compression Established." 2
  394. userhook 3
  395. jump 33
  396. !
  397. @LABEL 68
  398. note "Modem Compression Established." 2
  399. userhook 3
  400. jump 61
  401. !
  402. !
  403. ! -- Normal exit after "CONNECT" --
  404. !
  405. !  This modem has been setup to do CTS handshaking,
  406. !  and we assume that a CTS handshaking cable is being used.
  407. !
  408. @LABEL 70
  409. ! Turn on CTS handshaking.
  410. HSReset 0 1 0 0 0 0
  411. !
  412. ifANSWER 71
  413. pause 30
  414. @LABEL 71
  415. exit 0
  416. !
  417. !
  418. ! ---- Answer calls ----
  419. !
  420. !    A RING result from the modem and in ANSWERING mode
  421. !    claims the serial port and answering the phone
  422. !
  423. @LABEL 81
  424. ifORIGINATE 32
  425. userhook 1
  426. note "Answering phone..." 2
  427. write "ATA¥13"
  428. jump 32
  429. !
  430. !
  431. ! ---- Hang up and reset modem ----
  432. !
  433. @HANGUP
  434. @LABEL 90
  435. settries 0
  436. HSReset 0 0 0 0 0 0
  437. !
  438. @LABEL 92
  439. !  Escape from data to command mode
  440. matchclr
  441. matchstr 1 96 "OK¥13¥10"
  442. write "+++"
  443. matchread 20
  444. !
  445. @LABEL 94
  446. ! Force a hangup
  447. matchclr
  448. matchstr 1 98 "NO CARRIER¥13¥10"
  449. matchstr 2 98 "OK¥13¥10"
  450. matchstr 3 98 "ERROR¥13¥10"
  451. matchstr 4 98 "0¥13¥10"
  452. write "ATH¥13"
  453. matchread 30
  454. ! Try to get control of the modem by toggling DTR
  455. DTRClear
  456. pause 5
  457. DTRSet
  458. flush
  459. !
  460. ! Try the hangup sequence three times otherwise declare and error
  461. inctries
  462. iftries 3 101
  463. jump 92
  464. !
  465. @LABEL 96
  466. ! Pause between data and command mode
  467. pause 50
  468. jump 94
  469. !
  470. !
  471. @LABEL 98
  472. ! Recall the factory settings
  473. pause 15
  474. matchclr
  475. matchstr 1 99 "OK¥13¥10"
  476. write "AT&F¥13"
  477. matchread 30
  478. jump 101
  479. !
  480. @LABEL 99
  481. exit 0
  482. !
  483. ! ---- Error messages -----
  484. !
  485. ! Modem Not Responding
  486. @LABEL 101
  487. exit -6019
  488. !
  489. ! No Dial Tone
  490. @LABEL 102
  491. exit -6020
  492. !
  493. ! No Carrier or Error
  494. @LABEL 103
  495. exit -6021
  496. !
  497. ! Busy
  498. @LABEL 104
  499. exit -6022
  500. !
  501. ! No Answer
  502. @LABEL 105
  503. exit -6023
  504. !
  505. ! User Cancellation
  506. @LABEL 107
  507. exit -6008
  508.